Broyden–Fletcher–Goldfarb–Shanno algorithm